#!/usr/bin/env bash
# This script is from the "Passenger Debian packaging test" Jenkins job. It builds
# packages for a specific distribution and architecture and runs tests on the resulting packages.
#
# Required environment variables:
#
#   WORKSPACE
#   DISTRIBUTION
#   ARCHITECTURE
#
# Optional environment variables:
#
#   PASSENGER_ROOT (defaults to $WORKSPACE)
#   CACHE_DIR (defaults to $WORKSPACE/cache)
#   ENTERPRISE
#   DEBUG_CONSOLE
#
# Sample invocation in Vagrant dev environment:
#
#   env WORKSPACE=$HOME DISTRIBUTION=noble ARCHITECTURE=x86_64 PASSENGER_ROOT=/passenger ./dev/ci/debian/run

set -e
SELFDIR=$(dirname "$0")
cd "$SELFDIR/../../../../packaging/debian"
# shellcheck source=../../../../packaging/debian/internal/lib/library.sh
source "./internal/lib/library.sh"

require_envvar WORKSPACE "$WORKSPACE"
require_envvar DISTRIBUTION "$DISTRIBUTION"
require_envvar ARCHITECTURE "$ARCHITECTURE"

PASSENGER_ROOT="${PASSENGER_ROOT:-$WORKSPACE}"
CACHE_DIR="${CACHE_DIR:-$WORKSPACE/cache}"

if [[ "$DEBUG_CONSOLE" = true ]]; then
	EXTRA_TEST_PARAMS=-D
else
	EXTRA_TEST_PARAMS=
fi
if [[ "$ENTERPRISE" = 1 ]]; then
	EXTRA_TEST_PARAMS="$EXTRA_TEST_PARAMS -e /etc/passenger-enterprise-license"
fi

run mkdir -p "$CACHE_DIR"
run ./build \
	-w "$WORKSPACE/work" \
	-c "$CACHE_DIR" \
	-o "$WORKSPACE/output" \
	-p "$PASSENGER_ROOT" \
	-d "$DISTRIBUTION" \
	-a "$ARCHITECTURE" \
	-R \
	pkg:all
run ./test \
	-p "$PASSENGER_ROOT" \
	-d "$WORKSPACE/output/$DISTRIBUTION" \
	-c "$CACHE_DIR" \
	-x "$DISTRIBUTION" \
	-a "$ARCHITECTURE" \
	-j \
	$EXTRA_TEST_PARAMS
